﻿using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VideoReflector.Video
{
    /// <summary>
    /// Interface for controlling playing of tagged clips in a video
    /// </summary>
    public interface IClipPlayer : IClipStreamer
    {
        /// <summary>
        /// Temporarily stop playback
        /// </summary>
        void Pause();
        
        /// <summary>
        /// Skip to next clip in selection
        /// </summary>
        void SkipToNext();

        /// <summary>
        /// Skip to previous clip in selection
        /// </summary>
        void SkipToPrevious();

        /// <summary>
        /// Current position within clip (0 start, 1 end)
        /// </summary>
        double CurrentClipPosition { get; set; }

        /// <summary>
        /// Index of clip currently being played
        /// </summary>
        new int ClipNumber { get; set; }

        /// <summary>
        /// Audio volume level between 0 (muted) and 100 (full). Starts at 50
        /// </summary>
        int Volume { get; set; }

        /// <summary>
        /// The current overall video position (0 start, 1 end)
        /// </summary>
        double VideoPosition { get; set; }

        /// <summary>
        /// The current overall video time in seconds
        /// </summary>
        int VideoTime { get; set; }
    }
}